<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Registering DPL Secondary Keys</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB Installation and Build Guide" />
    <link rel="up" href="upgrade_4_8_toc.html" title="Chapter 16. Upgrading Berkeley DB 4.7 applications to Berkeley DB 4.8" />
    <link rel="prev" href="upgrade_4_8_toc.html" title="Chapter 16. Upgrading Berkeley DB 4.7 applications to Berkeley DB 4.8" />
    <link rel="next" href="upgrade_4_8_mpool.html" title="Minor Change in Behavior of DB_MPOOLFILE-&gt;get" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 12.1.6.2</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Registering DPL Secondary Keys</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="upgrade_4_8_toc.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 16. Upgrading Berkeley DB 4.7 applications to Berkeley DB 4.8</th>
          <td width="20%" align="right"> <a accesskey="n" href="upgrade_4_8_mpool.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="upgrade_4_8_dpl"></a>Registering DPL Secondary Keys</h2>
          </div>
        </div>
      </div>
      <p>
        Entity subclasses that define secondary keys must now be
        registered prior to storing an instance of the class. This can
        be done in two ways:
    </p>
      <div class="itemizedlist">
        <ul type="disc">
          <li>
            <p> 
                The
                <code class="methodname">EntityModel.registerClass()</code>
                method may be called to register the subclass before
                opening the entity store. 
            </p>
          </li>
          <li>
            <p> 
                The
                <code class="methodname">EntityStore.getSubclassIndex()</code>
                method may be called to implicitly register the
                subclass after opening the entity store.
            </p>
          </li>
        </ul>
      </div>
      <p> 
        Failure to register the entity subclass will result in an
        <code class="classname">IllegalArgumentException</code> the first
        time an attempt is made to store an instance of the subclass.
        An exception will not occur if instances of the subclass have
        previously been stored, which allows existing applications to
        run unmodified in most cases. 
    </p>
      <p> 
        This behavioral change was made to increase reliability. In
        several cases, registering an entity subclass has been
        necessary as a workaround. The requirement to register the
        subclass will ensure that such errors do not occur in deployed
        applications. 
    </p>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="upgrade_4_8_toc.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="upgrade_4_8_toc.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="upgrade_4_8_mpool.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Chapter 16. Upgrading Berkeley DB 4.7 applications to Berkeley DB 4.8 </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Minor Change in Behavior of DB_MPOOLFILE-&gt;get</td>
        </tr>
      </table>
    </div>
  </body>
</html>
